package org.liveboardgames.common.dictionary.collections
{

    /**
     *
     * Defines the contract for classes which are to provide a specific
     * implementation of an <code>IMap</code> entry.
     *
     * <p>
     * An <code>Entry</code> object is essentially a sealed type which
     * defines two properties: <code>key</code> and <code>value</code>
     * <code>IHashMapEntry</code> provides an interface into an Entry
     * object. <code>IHashMapEntry</code> implementations are intended
     * to provide a Strongly typed implementation of a key / values
     * pair.
     * </p>
     *
     * @see IMap
     *
     */
    public interface IHashMapEntryDeprecated
    {
        /**
         *
         * Assigns a value to the <code>key</code> property of the
         * <code>IHashMapEntry</code> implementation.
         *
         * @param value to assign to the <code>key</code> property
         *
         */
        function set key(value:*):void;

        /**
         *
         * Retrieves the value of the <code>key</code> property of the
         * <code>IHashMapEntry</code> implementation.
         *
         * @return value of the <code>key</code> property
         *
         */
        function get key():*;

        /**
         *
         * Assignes a value to the <code>value</code> property of an
         * <code>IHashMapEntry</code> implementation.
         *
         * @param value to assign to the <code>value</code> property
         *
         */
        function set value(value:*):void;

        /**
         *
         * Retrieves the value of the <code>value</code> property of an
         * <code>IHashMapEntry</code> implementation.
         *
         * @return value of the <code>value</code> property
         *
         */
        function get value():*;
    }
}
